package com.relytosoft.mizar.analyze.strategy.algorithm.face.service;

import com.relytosoft.dubhe.common.core.object.ResponseResult;
import com.relytosoft.mizar.analyze.base.entity.pojo.dto.*;

/**
 * @author Jierry
 * @version 2022/5/11.
 */
public interface FaceService {

    ResponseResult test();

    /**
     * 创建实时人脸分析任务
     *
     * @param taskRequestDto
     * @return
     */
    ResponseResult createTask(TaskRequestDto taskRequestDto);


    /**
     * 删除实时人脸分析任务
     *
     * @param taskId
     * @return
     */
    ResponseResult stopTask(String taskId);


    /**
     * 人脸分析
     *
     * @param featureExtractionReqDto
     * @return
     */
    ResponseResult feartureExtraction(FeatureExtractionReqDto featureExtractionReqDto);


    /**
     * 人脸比对1:1
     *
     * @param featureComparisonReqDto
     * @return
     */
    ResponseResult feartureComparison(FeatureComparisonReqDto featureComparisonReqDto);


    /**
     * 添加人脸库
     *
     * @param faceGroupReqDto
     * @return
     */
    ResponseResult createGroup(FaceGroupReqDto faceGroupReqDto);


    /**
     * 删除人脸库
     *
     * @param faceGroupReqDto
     * @return
     */
    ResponseResult deleteGroup(FaceGroupReqDto faceGroupReqDto);


    /**
     * 添加人脸
     *
     * @param facePersonReqDto
     * @return
     */
    ResponseResult createPerson(FacePersonReqDto facePersonReqDto);


    /**
     * 删除人脸
     *
     * @param facePersonReqDto
     * @return
     */
    ResponseResult deletePerson(FacePersonReqDto facePersonReqDto);


    /**
     * 人脸检索
     *
     * @param faceSearchReqDto
     * @return
     */
    ResponseResult searchPerson(FaceSearchReqDto faceSearchReqDto);

    /**
     * 创建人脸布控任务
     *
     * @param dispositionReqDto
     * @return
     */
    ResponseResult createDispostion(DispositionReqDto dispositionReqDto);

    /**
     * 删除人脸布控任务
     *
     * @param dispositionId
     * @return
     */
    ResponseResult deleteDispostion(String dispositionId);

}
